package com.account.domains;

import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 交易拆分表
 * </p>
 *
 * @author ganhuaicheng
 * @since 2017-09-19
 */
@TableName("account_trade_split")
public class AccountTradeSplit implements Serializable {

    private static final long serialVersionUID = 1L;

	/**
	 * 自增id
	 */
	@TableId(type = IdType.AUTO)
	private Long id;

	/**
	 * 交易id
	 */
	@TableField(value="trade_id")
	private Long tradeId;

	/**
	 * 交易号
	 */
	private String dealsn;

	/**
	 * 三方交易号
	 */
	@TableField(value="third_dealsn")
	private String thirdDealsn;

	/**
	 * 三方返回订单号
	 */
	@TableField(value="third_order_num")
	private String thirdOrderNum;

	/**
	 * 当前步骤
	 */
	private Integer step;

	/**
	 * 总共步骤
	 */
	@TableField(value="total_step")
	private Integer totalStep;

	/**
	 * 三方id（0:内部交易 1：连连）
	 */
	@TableField(value="third_num")
	private Integer thirdNum;

	/**
	 * 交易类型　1:代扣 2:划拨
	 */
	@TableField(value="deal_type")
	private Integer dealType;

	/**
	 * 出帐帐户类型　0:银行卡　1:内部虚拟帐户1 2:内部虚拟帐户 3:内部虚拟帐户
	 */
	@TableField(value="out_account_type")
	private Integer outAccountType;

	/**
	 * 银行卡id(只允许是本人银行卡) 或 用户id
	 */
	@TableField(value="out_account_id")
	private Long outAccountId;

	/**
	 * 出帐帐户类型　0:银行卡 1:内部虚拟帐户1 2:内部虚拟帐户 3:内部虚拟帐户
	 */
	@TableField(value="in_account_type")
	private Integer inAccountType;

	/**
	 * 银行卡id(只允许是本人银行卡) 或 用户id
	 */
	@TableField(value="in_account_id")
	private Long inAccountId;

	/**
	 * 金额
	 */
	@TableField(value="current_amount")
	private BigDecimal currentAmount;

	/**
	 * 0:继续,1:就此终止此业务
	 */
	@TableField(value="error_continue")
	private Integer errorContinue;

	/**
	 * 执行状态 -1:不可执行 0:未执行 1:执行中 2:执行成功　3:执行失败
	 */
	@TableField(value="trade_status")
	private Integer tradeStatus;

	/**
	 * 处理次数
	 */
	@TableField(value="proccess_count")
	private Integer proccessCount;

	/**
	 * 任务执行时间
	 */
	@TableField(value="schedule_date")
	private Date scheduleDate;

	/**
	 * 逻辑删除标记  0：有效;1：删除
	 */
	@TableField(value="is_delete")
	private Integer isDelete;

	/**
	 * 创建时间
	 */
	@TableField(value="create_time")
	private Date createTime;

	/**
	 * 更新时间
	 */
	@TableField(value="update_time")
	private Date updateTime;



	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Long getTradeId() {
		return tradeId;
	}

	public void setTradeId(Long tradeId) {
		this.tradeId = tradeId;
	}

	public String getDealsn() {
		return dealsn;
	}

	public void setDealsn(String dealsn) {
		this.dealsn = dealsn;
	}

	public String getThirdDealsn() {
		return thirdDealsn;
	}

	public void setThirdDealsn(String thirdDealsn) {
		this.thirdDealsn = thirdDealsn;
	}

	public String getThirdOrderNum() {
		return thirdOrderNum;
	}

	public void setThirdOrderNum(String thirdOrderNum) {
		this.thirdOrderNum = thirdOrderNum;
	}

	public Integer getStep() {
		return step;
	}

	public void setStep(Integer step) {
		this.step = step;
	}

	public Integer getTotalStep() {
		return totalStep;
	}

	public void setTotalStep(Integer totalStep) {
		this.totalStep = totalStep;
	}

	public Integer getThirdNum() {
		return thirdNum;
	}

	public void setThirdNum(Integer thirdNum) {
		this.thirdNum = thirdNum;
	}

	public Integer getDealType() {
		return dealType;
	}

	public void setDealType(Integer dealType) {
		this.dealType = dealType;
	}

	public Integer getOutAccountType() {
		return outAccountType;
	}

	public void setOutAccountType(Integer outAccountType) {
		this.outAccountType = outAccountType;
	}

	public Long getOutAccountId() {
		return outAccountId;
	}

	public void setOutAccountId(Long outAccountId) {
		this.outAccountId = outAccountId;
	}

	public Integer getInAccountType() {
		return inAccountType;
	}

	public void setInAccountType(Integer inAccountType) {
		this.inAccountType = inAccountType;
	}

	public Long getInAccountId() {
		return inAccountId;
	}

	public void setInAccountId(Long inAccountId) {
		this.inAccountId = inAccountId;
	}

	public BigDecimal getCurrentAmount() {
		return currentAmount;
	}

	public void setCurrentAmount(BigDecimal currentAmount) {
		this.currentAmount = currentAmount;
	}

	public Integer getErrorContinue() {
		return errorContinue;
	}

	public void setErrorContinue(Integer errorContinue) {
		this.errorContinue = errorContinue;
	}

	public Integer getTradeStatus() {
		return tradeStatus;
	}

	public void setTradeStatus(Integer tradeStatus) {
		this.tradeStatus = tradeStatus;
	}

	public Integer getProccessCount() {
		return proccessCount;
	}

	public void setProccessCount(Integer proccessCount) {
		this.proccessCount = proccessCount;
	}

	public Date getScheduleDate() {
		return scheduleDate;
	}

	public void setScheduleDate(Date scheduleDate) {
		this.scheduleDate = scheduleDate;
	}

	public Integer getIsDelete() {
		return isDelete;
	}

	public void setIsDelete(Integer isDelete) {
		this.isDelete = isDelete;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public Date getUpdateTime() {
		return updateTime;
	}

	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}

}
